package com.atguigu;

import lombok.AllArgsConstructor;

import java.util.HashMap;

/**
 * @author li.chunlong lcl253-137@alibaba-inc.com
 * @desc 抽象运算符号解析器， 这里每个运算符号都只和自己左右两个数字有关系，但左右两个数字有可能也是一个解析的结果，无论何种类型都是Expression的实现类
 * @date 2021-10-22
 */
@AllArgsConstructor
public class SymbolExpression extends Expression {

    protected Expression left;

    protected Expression right;

    /**
     * 因为SymbolExpression是让子类来实现，因此自身是一个空实现
     *
     * @param var 公式变量的键值对，key是表达式参数，value是表达式的实际值
     * @return 运算符左右的实际值 / 运算解析之后的新值
     */
    @Override
    public int interpreter(HashMap<String, Integer> var) {
        return 0;
    }
}
